/**
 * @author: Saveliy Bondarenko
 * @date: 24.08.12, 23:58
 */

(function($){
	jQuery.fn.specialClass = function(params){
		var item = $(this);

		if (params) {
			if (typeof(params) === 'object') {
				// Если есть параметр last.
				if (params['last'] || params['last'] === '') {
//					var b = (params['last'] === '') ? "last" : params['last'];
					item.last().addClass((params['last'] === '') ? "last" : params['last']);
				}
				// Если есть параметр first.
				if (params['first'] || params['first'] === '') {
					item.first().addClass((params['first'] === '') ? "first" : params['first']);
				}
				// Если есть параметр all;
				if (params['all'] || params['all'] === '') {
					item.addClass((params['all'] === '') ? "item" : params['all']);
				}
				// Если указан параметр номер и  класс номера.
				if (params['index'] && params['indexName']) {
					item.each(function() {
						var el = $(this);
						// Пройдемся по элементам устанавливая нужные классы.
						if ((el.index() + 1) % params['index'] == 0) {
							el.addClass(params['indexName']);
						}

					});
				}
				// Если указан параметр имени для всех и номер с какого начинать если номера нет начинаем с 1.
				if (params['indexAllName']) {
					var count;

					if (params['indexStart']) {
						count = params['indexStart'] - 1;
					} else {
						count = 0;
					}

					item.each(function() {
						var el = $(this);
						el.addClass(params['indexAllName'] + ++count);
					});
				}

			}
			else if (typeof(params) === 'string') {
				if (params === 'last') {
					item.last().addClass('last');
				}
				else if (params === 'first') {
					item.first().addClass('first');
				}
				else if (params === 'help') {
						console.log('Данная команда к сожалению еще не реализованна.\nПриносим извинения за неудобства.');
					}
			}
		}
		return item;
	};
})(jQuery);
